Modern computer systems have multiple components operating in a multi-tasking environment which makes it difficult to measure the satisfaction of the user with the performance of the various components. In general, the user initiates an action utilizing a pointing device and/or the keyboard. Often a delay is experienced between the time of initiation and a response from the computer. Such delays, if sufficiently long, result in user frustration with the system.
Such delays can be the result of an overload at any level of the multitasking system. For example, the time slice allocated to the user interface may be insufficient to allow the user interface to repaint its part of the screen within the same time slice as the initiation operation. If a large number of tasks are active on the system, the next time slice provided to the interface may be seconds away. Alternatively, the user interface may need to receive information from a server on the network before responding to the user. Delay in that server could be the cause of the delay. Accordingly, it is difficult to determine which part of the system is actually causing the delay.
Furthermore, the level of delay in receiving a response from the system that is acceptable to the current user of the system is not predictable. Individual users have widely varying tolerances for delays. Hence, a delay that is unacceptable to one user may be perfectly acceptable to a second user.
It would be advantageous to provide a method for measuring the level of user satisfaction in a computer system. Such a measurement could be used to allocate system resources to relieve user frustration when the system detects that a specific component in the system is introducing delays that are unacceptable to the users of the system. For example, the operating system could increase the time slice associated with the tasks of a user who was dissatisfied with the system's performance.
In addition, such measurements can be used by system planning personnel to identify components that need to be upgraded. Given the large number of components, the choice of which component to upgrade next is not always obvious.
One method for measuring the performance of a server is to measure the percentage of the capacity of the server that is being utilized. In principle, a server that is running near capacity will introduce delays into the system. However, a server that appears to be running well below capacity may not be providing "good" service to its users. Consider a server on the Internet. If the delays in delivering packets to the user are too great, the user will cancel the transaction. Hence, the server's total utilization may appear low; while the users of the server are dissatisfied.
Broadly, it is the object of the present invention to provide an improved method for measuring user satisfaction with a computer system.
It is a further object of the present invention to provide a method of identifying the individual components of a computer system that are responsible for generating the user dissatisfaction.
These and other objects of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.